Airline flight departure and arrival prediction based upon historical and real-time data

ABSTRACT

Use of neural network technology to predict the actual arrival and departure times of scheduled airline flights based upon historical and real-time data. Based upon a scheduled airline flight, the system retrieves historical data related to the flight such as information concerning previous delays involving the same flight or delaying involving the departure and arrival airports. The system also retrieves real-time data that may affect the scheduled flight such as weather information or current news involving flight delays. The historical and real-time data is formatted into structured sets and optionally weighted. A neural network processes the structured historical and real-time data based upon the received flight information and provides predicted actual departure and arrival times along with corresponding confidence levels.

REFERENCE TO RELATED APPLICATIONS

[0001] The present application is related to the following applications, all of which are incorporated herein by reference as if fully set forth: United States provisional patent application of Brian C. Roundtree, Ser. No. 60/182,330, entitled “Web-Based Personal Assistance Communication Method,” and filed Feb. 14, 2000; United States patent application of Brian C. Roundtree, entitled “Web-Based Personal Assistance Communication System,” and filed Jul. 17, 2000; United States patent application of Brian C. Roundtree, entitled “Web-Based Personal Assistance Communication Method,” and filed Jul. 17, 2000; United States patent application of Brian C. Roundtree, entitled “Web-Based Personal Assistance User Interface System,” and filed Jul. 17, 2000; United States patent application of Brian C. Roundtree, entitled “Voice-to-Concept Conversion System,” and filed on Sep. 8, 2000; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “On-Line Service Provider Sign-Up System,” and filed on Sep. 8, 2000; United States patent application of Keldon V. Rush and Brian C. Roundtree, entitled “System for Converting Textual Concepts to Interactive Audio and Audio/Visual Presentations,” and filed on Sep. 8, 2000; United States patent application of Brian C. Roundtree, entitled “System for Obtaining Service-Related Information for Local Interactive Wireless Devices,” and filed on September 8, 2000; United States patent application of Cristiano L S Pierry and Brian C. Roundtree, entitled “System for Secure Electronic Transactions Using Unique Identifiers for Order-Related Information,” and filed on Sep. 8, 2000; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “Hypertext Concept Notation for Dynamically Constructing a Sentence to Respond to a User Request,” and filed on same date herewith; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “Assembling Personal Information of a Target Person Based Upon Third-Party Information and a Request Purpose,” and filed on same date herewith; United States patent application of Brian C. Roundtree, entitled “Automated Reservation and Appointment System Using Interactive Voice Recognition,” and filed on same date herewith; United States patent application of Craig G. Eisler and Brian C. Roundtree, entitled “Rendering Data Using Rendering Instructions Based Upon Concept Identifiers for the Data,” and filed on same date herewith; and United States patent application of Cristiano L S Pierry and Brian C. Roundtree, entitled “Automated Alert State Change of User Devices for Time-Based and Location-Based Events,” and filed on same date herewith.

FIELD OF THE INVENTION

[0002] The present invention relates to an apparatus and method for predicting airline flight departure and arrival times based upon historical and real-time data.

BACKGROUND OF THE INVENTION

[0003] Wireless devices, such as cell phones and personal digital assistants (PDAs), are becoming more commonly used and have the potential for communication over the Internet in addition to traditional telephone networks. The Internet communication with these devices permits users to obtain services and other related information using wireless communication with the devices. For example, a user can download content from the world wide web on the Internet using a cell phone and have the information displayed on the display panel of the cell phone. Therefore, in addition to using the cell phone for voice communication, the user can obtain content over the Internet concerning, for example, services available from service providers. The user can also execute transactions over the Internet using the cell phone or other wireless device. For example, the user can make electronic purchases for good or services, analogous to how users can make transactions over the Internet using a personal computer having a connection to the Internet.

[0004] Many wireless devices, however, provide for limited ways to enter information for communications over the Internet. Cell phones, for example, typically have only a key pad in addition to a microphone, making entry of textual information slow and inconvenient. Other devices, such as PDAs, may have even more limited ways to enter textual information. Therefore, these devices do not typically provide the same ease of interacting over the Internet as provided by a personal computer having a keyboard and cursor-control device for easy and convenient “point and click” selection of content displayed in web pages. These devices may also be limited in how information can be displayed. Wireline devices, such as conventional phones, provide for even more limited interaction over the Internet.

[0005] Also, when using these user devices to execute the transactions, the information available through the transactions is often limited. A user request for content often results in generic content potentially applicable to many situations other than the particular situation of the user. For example, a user may want information about purchasing gifts for others or information about services available such as travel-related information. In response to a request for such information, the user may be provided with information about gifts for generic categories and other information for general travel-related services. Without targeting the information to the user's situation, the information may not have much value to the user.

[0006] Accordingly, a need exists for increased options and versatility for user's having wireless devices or wireline devices to interact and make transactions over the Internet, for increased versatility to request service or make transactions with service providers, and for obtaining more information targeted to a user's particular situation or request.

SUMMARY OF THE INVENTION

[0007] A method and apparatus consistent with the present invention predict arrival and departure times of scheduled airline flights. A requestor submits a query relating to a particular scheduled airline flight, and historical and real-time data related to the flight are retrieved. Based upon the historical and real-time data, the actual departure and arrival times related to the flight are predicted, and an indication of the predicted times is provided to the requester.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The accompanying drawings are incorporated in and constitute a part of this specification and, together with the description, explain the advantages and principles of the invention. In the drawings,

[0009]FIG. 1 is a diagram of a system for processing requests for service;

[0010]FIG. 2 is a diagram of a network for communicating with wireless and wireline devices and service providers to process requests for service;

[0011]FIG. 3 is a diagram of exemplary components of a server for processing requests for service;

[0012]FIG. 4 is a diagram of exemplary components of a wireless device;

[0013]FIG. 5 is a block diagram of a system for using a neural network to predict actual departure and arrival times of airline flights based upon historical and real-time data;

[0014]FIG. 6 is a flow chart of a method to gather and maintain historical and real-time data for the prediction; and

[0015]FIGS. 7 and 8 are a flow chart of a method for predicting actual departure and arrival times for airline flights.

DETAILED DESCRIPTION Introduction

[0016] Embodiments consistent with the present invention provide various features for a web-based electronic personal assistant, as described in the web-based personal assistance applications identified above. The electronic personal assistant is implemented with a system server that the receives requests from users through wireless or wireline devices and processes the requests in order to provide the user with requested service or information. These features permit the user to interact with the system server in a variety of ways such as through a display on the device, a keyboard or keypad, or through voice interaction. The system server can present information to the user in a variety of ways as well, such as through audio communication or through information presented on a display with, for example, textual information, screens, or web pages presented with HyperText Markup Language (HTML).

[0017] The requests, as explained in the web-based personal assistance applications identified above, can include any request for service or information. For example, a user may request a meeting, and in response the system server queries the user to obtain information required to arrange the meeting and then automatically makes the arrangements. As another example, a user may request information concerning services in a particular geographic location or based upon other parameters, and the system server can query the user to determine the type of information requested, such as particular types of retail establishments, and provide the information to the user. As another example, a user may request to purchase goods or services, or make reservations for services, and in response the system server queries the user to determine the type of goods or services desired as well as other information such as a desired price. Based upon that information, the system server automatically makes the purchase for the user. For the reservations example, the system server can query the user to determine information required to make the reservations for the user. For any request, the system server can access user preferences to obtain information required or useful to process the request, such as the user's credit card information and shipping address.

[0018] In addition, the system server can automatically notify the user of particular information. The system server typically maintains a database of preferences for the users in order to help process the requests. It also maintains a concept database and uses the concepts in order to retrieve and construct queries, such as text fragments, for the user. The use of only text fragments, for example, saves transmission time in comparison to transmission of graphical information over a network; alternatively, graphics can be used in addition to the text fragments.

[0019] Based upon the type of request, and potentially user preferences, the system server selects the appropriate queries from the concept database to obtain information to process the request. Upon completion of the processing, the system server can present to the user a sentence constructed from the related concepts in order to confirm the request. It can also use the sentence to document the request, retrieve the appropriate resources for it, and otherwise fulfill the request. This process, and the use of these concepts and the structure for a concept database, are further described in the web-based personal assistance applications identified above.

[0020] The system server can also cross-reference the concept database with a service provider database. In order to fulfill requests, the system server can access a database identifying available service providers for the request. At the end of each string of concepts in the concept database, that database can specify a link or pointer to the relevant service providers in the service provider database. For example, if the request is for a meeting, once the system server has all the relevant information as constructed from the concepts, the concept for the location of the meeting can include a pointer or link to the establishments proximate the location and available to provide food for the meeting. Therefore, information for relevant service providers can be associated with the appropriate concepts in the concept database.

Request Processing

[0021]FIG. 1 is a diagram of a system for fulfilling a request for service. The system includes a system server 10 for processing a request transmitted from a requestor 12 through a network 14 such as the Internet or other wireline or wireless network. System server 10 includes several software modules for processing the request from requestor 12. A communicator module 16 manages an interface for the communications with requester 12 over network 14. Communicator module 16 receives the request and provides necessary formatting and other processing for transmitting it to a planner module 22.

[0022] Planner module 22 interacts with a service provider module 24 in order to obtain the resources for fulfilling the request. In particular, service provider module 24 interacts over a network 30, such as the Internet or a phone network, with one or more service providers 32 in order to obtain services to fulfill the request. Service provider module 24 provides for communication and data conversion for the interaction, while planner module 22 manages processing of the request and interacts with various databases for processing the request. A private credit card service module 28 can provide for secure order processing of the request to help safeguard users' personal information such as credit card numbers.

[0023] Once the planner module 22 has obtained the resources for the request, it communicates information to fulfill the request to an executor module 18. Executor module 18 includes a pending plan database 20 for storing and managing resources and other information to fulfill the request. Executor module 18 thus communicates back over network 14 with requestor 12 to provide confirmation of the request and also to execute the request.

[0024] A learning module 26 can provide for fine-tuning plan data within a database 34 in order to more efficiently process requests, particularly from the same requester. Other databases include a database 36 storing financial data accessed by executor module 18, and a database 38 storing personal data accessed by executor module 18 and planner module 22. The personal data can include an account for each user having a profile and preferences for the users, and the information can be indexed by a particular user identifier such as a phone number or code.

[0025] Table 1 illustrates a user account. As shown, the user accounts can include users' preferences for a wide variety of information such as for travel, dining, and other types of service providers. The user preferences can be continually updated and refined over time as the system server gathers more information concerning the user, and the system server can optionally use learning models for the refinements and use the preferences to make “smart choices” in processing users' requests. The information can be stored in a variety of ways such as in a relational database or with name-value pairs in Extensible Markup Language (XML). TABLE 1 user 1 identifier data contact name, address profile user 1 characteristics hotel information user 1 hotel preferences airline information user 1 airline preferences rental car information user 1 rental car preferences restaurant information user 1 restaurant preferences service provider preferences user 1 service provider preferences other category user 1 preferences for the category

[0026] Processing to fulfill the request is further explained in the web-based personal assistance applications identified above.

Network

[0027]FIG. 2 is a diagram of an exemplary network 50 illustrating interaction for receiving and processing requests from users such as requester 12. It illustrates how the system can receive requests through wireless and wireline transmission over conventional phone and cellular networks as well as the Internet or other computer networks. A requestor typically makes a request from a wireless or wireline device. The wireless devices include any device capable of wireless electronic communication and examples include the following: cellular phones; PDAs with wireless network access; wireless Internet appliances; personal computers (including desktop, laptop, notebook, and others) with wireless network access; and personal computers with microphones, speakers, and circuitry for permitting wireless phone calls. The wireline devices include any device capable of electronic wireline communication and examples include the following: conventional phones; PDAs with wireline network access; Internet appliances; personal computers (including desktop, laptop, notebook, and others) with wireline network access; and personal computers with microphones, speakers, and circuitry for permitting wireline phone calls.

[0028] A wireless device 52, for example, can interact through wireless transmission with a base station 56 for communication over a personal communication system (PCS) 58. A request may also be made from a wireline device 54 communicating over a public switched telephone network (PSN) 60. Systems for wireless and wireline communication, includes a PCS and PSN, are known in the art.

[0029] Communications through networks 58 and 60 are transmitted through a gateway 62 and potentially a buffer 64 to a speech processor 66 for performing processing of audio or particular types of communications, such as for voice-to-text conversion. Also, the communication may occur directly from gateway 62 to an interface server 68. Interface server 68 controls gateway 62, and it provides an interface between a system server 76 and gateway 62, speech processor 66, and the world wide web 70.

[0030] System server 76 corresponds with system server 10 in FIG. 1 to process user requests. Interface server 68 provides the data conversion and processing for transferring data to and from system server 76. As shown by the dashed line, speech processor 66 and interface server 68 can be implemented with the same physical machine or with different machines. Also, system server 76 can be implemented with one or more physical machines and can also be programmed to implement the functions of speech processor 66 and interface server 68.

[0031] In addition to receiving requests over networks 58 and 60, interface server 68 can receive a request over the world wide web 70. In particular, a wireless device 74 can interact through wireless communication with a PCS 72, which communicates over the world wide web 70 through a communication protocol such as, for example, the wireless application protocol (WAP). The WAP for communications over the Internet is known in the art.

[0032] System server 76 can communicate over the world wide web 78 with various service provides to fulfill requests. In addition, system server 76 can communicate with credit card processing or other financial networks 86 in order to provide financial processing for fulfilling requests. Networks 86 can include known networks, including banking networks, for processing credit card transactions. As shown, service providers 80 and financial networks 86 can also send and receive communications through a PCS 82 and PSN 84.

[0033] System server 76 can communicate directly over the world wide web 78 to a gateway 88 and base station 90 in order to provide communication directly with a wireless device 92. Also as shown, communications can occur from system server 76 back through interface server 68 and speech processor 66 to the end user wireless devices 52 and 74 and wireline device 54; system server 76 can also communicate directly with gateway 62, as shown. Those communications can provide, for example, confirmation of a request or information responsive to a request.

[0034] Network 50 illustrates fundamental hardware components for communications over the various types of networks shown. As known in the art, network 50 can include additional components and can also include components for providing services known in the art with respect to phone calls. For example, it can include a caller ID service to provide system server 76 with the phone number of the user's wireless or wireline device originating a communication. Also, network 50 can include other means for communication of data such as through satellite transmission. For transmission over the Internet, network 50 can use Transmission Control Protocol/Internet Protocol (TCP/IP) or other protocols.

Server Components

[0035]FIG. 3 depicts a server 100 illustrating exemplary hardware components of system server 10 and other machines used by the system, such as speech processor 66 and interface server 68. Server 100 includes a connection with a network 116 such as the Internet or other type of computer or phone networks, which may correspond with the networks shown in FIGS. 1 and 2. Server 100 typically includes a memory 102, a secondary storage device 110, a processor 112, an input device 114, a display device 108, and an output device 106.

[0036] Memory 102 may include random access memory (RAM) or similar types of memory, and it may store one or more applications 104 for execution by processor 112. Applications 104 may correspond with software modules to perform processing for the functions described below.

[0037] Secondary storage device 110 may include a hard disk drive, floppy disk drive, CD-ROM drive, or other types of non-volatile data storage, and it may correspond with the various databases shown in FIG. 1. Processor 112 may execute applications or programs stored in memory 102 or secondary storage 110, or received from the Internet or other network 116. Input device 114 may include any device for entering information into server 100, such as a keyboard, key pad, cursor-control device, touch-screen (possibly with a stylus), or microphone. Display device 108 may include any type of device for presenting visual information such as, for example, a computer monitor, flat-screen display, or display panel. Output device 106 may include any type of device for presenting a hard copy of information, such as a printer, and other types of output devices include speakers or any device for providing information in audio form. Server 100 can possibly include multiple input devices, output devices, and display devices.

[0038] Although server 100 is depicted with various components, one skilled in the art will appreciate that this server can contain additional or different components. In addition, although aspects of an implementation consistent with the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer program products or computer-readable media, such as secondary storage devices, including hard disks, floppy disks, or CD-ROM; a carrier wave from the Internet or other network; or other forms of RAM or ROM. The computer-readable media may include instructions for controlling server 100 to perform a particular method.

Wireless Device Components

[0039]FIG. 4 illustrates exemplary hardware components of a wireless device 120, which may correspond with the exemplary wireless devices identified above. Wireless device 120 typically includes a memory 122, a secondary storage device 130, a processor 132, an input device 134, a display device 128, an output device 126, a transmitter/receiver 136, and a short range transmitter/receiver 138.

[0040] Memory 122 may include RAM or similar types of memory, and it may store one or more applications 124 for execution by processor 132. Applications 124 may correspond with software modules to perform processing for the functions described below, and they may also include web browser programs for retrieving and displaying content from the Internet. Secondary storage device 130 may include a hard disk drive, floppy disk drive, CD-ROM drive, or other types of non-volatile data storage such as a ROM. Processor 132 may execute applications or programs stored in memory 122 or secondary storage 130. Input device 134 may include any device for entering information into wireless device 120, such as a keyboard, key pad, cursor-control device, touch-screen (possibly with a stylus), or microphone. Wireless device 120 can include multiple input devices; for example, it can include both a microphone and key pad for a cell phone. Display device 128 may include any type of device for presenting visual information such as, for example, a computer monitor, flat-screen display, or display panel. Output device 126 typically includes a speaker for providing information in audio form. It can also include a device for providing a hard copy of information such as a printer, or provide a port for a connection to a printer. Wireless device 120 can possibly include multiple input devices, output devices, and display devices.

[0041] Transmitter/receiver 136 provides for wireless communication with phone networks or computer networks such as is shown in FIGS. 1 and 2. Transmitter/receiver 136 can be implemented with known RF transmitters and receivers for providing cellular transmission between wireless device 120 and base stations such as base stations 56 and 90, or it can be implemented with a wireless transmitter/receiver for other types of communication such as a satellite transmission.

[0042] Short range transmitter/receiver 138 provides for wireless short range communication with other wireless devices, and it can be implemented with transmitters and receivers that operate according to the IEEE standard 802.11 for local wireless networks or according to the standard referred to as the Bluetooth™ technology for direct wireless communication between local interactive wireless devices; that technology is explained in, for example, the Specification of the Bluetooth System, Core, v1.0 B, Dec. 1, 1999 and the Specification of the Bluetooth System, Profiles, v1.0 B, Dec. 1, 1999, both of which are incorporated herein by reference.

[0043] In addition, even if a wireless device does not contain short range transmitter/receiver 138, technology exists to obtain an approximate geographic location of certain wireless devices. In particular, using multiple base stations the signal from a cellular phone, for example, can be triangulated in order to obtain an approximate geographic location of the cellular phone, including an indication of its vertical (altitude) location.

[0044] Although wireless device 120 is depicted with various components, one skilled in the art will appreciate that this wireless device can contain additional or different components. In addition, although aspects of an implementation consistent with the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer program products or computer-readable media, such as secondary storage devices, including hard disks, floppy disks, or CD-ROM; a carrier wave from the Internet or other network; or other forms of RAM or ROM. The computer-readable media may include instructions for controlling wireless device 120 to perform a particular method.

[0045] Exemplary hardware components for wireline devices, such as the examples provided above, can include the same components as wireless device 120 except without the transmitter/receiver 136 and the short range transmitter/receiver 138.

Airline Flight Departure and Arrival Prediction

[0046] Embodiments consistent with the present invention predict the actual arrival and departure times of scheduled airline flights based upon historical and real-time data. In one embodiment, a neural network is used to receive historical and real-time data relating to a particular flight, along information for the flight, and make the prediction. Scheduled flights have a scheduled departure and arrival time.

[0047] However, the actual departure and arrival times often vary from the scheduled times due a wide array of factors such as, for example, flight delays, weather delays, aircraft mechanical problems, and information related to airport and airline operations. By analyzing such historical and real-time data using neural network technology, a traveler can be provided with a prediction of an actual departure and arrival time for a particular flight. Use of predicted actual departure and arrival times permits, for example, a traveler to make more reliable travel plans than if those plans were based solely upon the scheduled times. Use of predicted times can have many other uses and advantages as well.

[0048]FIG. 5 is a block diagram of a system 150 for using a neural network to predict actual departure and arrival times of airline flights based upon historical and real-time data. A system server 158, which may be implemented with system server 10 described above, controls the gathering of the historical and real-time data, and transmission of the appropriate data to a neural network 168 for predicting airline flight departure and arrival times. System server 158 can communicate over a network 152, such as the Internet or networks described above, with historical data sources 156 in order to obtain historical data and with a real-time data sources 154 in order to obtain real-time data.

[0049] System server 158 retrievers raw historical and real-time data from historical data sources 156 and real-time data sources 154 and converts the raw data into structured data sets for use by neural network 168. After the conversion, system server 158 stores the historical data in structured historical data sets 160 and stores the real-time data in structured real-time data sets 162. These data sets may be stored in a database such as secondary storage 110 described above. Fuzzy pre-processors 164 and 166 receive structured data sets from historical and real-time data sets 160 and 162, and they perform weighting of the data. The weighted data sets are then transmitted to neural network 168 for processing.

[0050] Upon receiving a request for flight departure and arrival times prediction, system server 158 causes transmission of the appropriate data sets from historical and real-time structured sets 160 and 162 to fuzzy pre-processors 164 and 166. Fuzzy pre-processors 164 and 166 perform weighting of the selected data sets and transmit the weighted data sets to neural network 168. System server 158 also transmits to neural network 168 the flight information for a particular scheduled airline flight. Using the weighted data sets and flight information, neural network 168 predicts the actual departure and arrival times, and transmits the predicted times back to system server 158. Neural network 168 can also generate a confidence level for each of the predicted times, indicating a statistical degree of reliability of the predicted times, and transmit the confidence levels to system server 158 as well.

[0051] As an example, consider the following. A user enters into a user device the following scheduled flight information: United Airlines flight 100, departing the Seattle/Tacoma (Seatac) Airport (SEA) on date X at 8:40 am and arriving at the San Francisco Airport (SFO) at 10:50 am. The system server can access a CRS and determine that the flight is scheduled to use a Boeing 737-300 aircraft. The system then accesses historical and real-time data for this flight information. For example, it retrieves statistical information for delays at the Seatac and San Francisco airports, forecast weather in Seattle and San Francisco for date X, a calendar to determine if date X is a weekend or holiday, any relevant news involving United Airlines, an airline dispatcher database for the Seatac airport, historical maintenance data and problems for the Boeing 737-300 aircraft, and other such information. Based upon all those inputs, the system through the neural network predicts that this flight will actually depart the Seatac Airport at 8:55 am and arrive in San Francisco at 11:08 am on date X.

[0052]FIG. 6 is a flow chart of a method 170 to gather and maintain historical and real-time data for the prediction using system 150. Method 170 can be implemented in software modules within a server such as system server 158. In method 170, system server 158 accesses historical data sources 156 (step 172) and retrieves historical data from them (step 176). The historical data is formatted into structured sets with optional weighting, which can be accomplished using conventional neural network techniques (step 176). The structured data sets are stored in a database containing structured historical data sets 160 along with an associated date and time (step 178).

[0053] System server 158 also updates the stored historical data based upon a particular time parameter (step 180). In particular, system server 158 determines which data sets satisfy the time parameter (step 182). In one particular embodiment, for example, the system server maintains historical data for two years; therefore, it checks for any historical data sets having a date more than two years prior to the current date. Other time parameters may be used for either longer or shorter time durations to maintain the data. In addition, through empirical evidence the system can determine whether longer or shorter periods of historical data increases or decreases the degree of reliability of the predicted times, and it can modify the time parameter based upon that empirical evidence. For any data sets satisfying the time parameter, system server 158 deletes the data sets from the database (step 184).

[0054] System server 158 also gathers real-time data. It accesses real-time data sources 154 (step 186) and retrieves real-time data from them (step 188). The real-time data is formatted into structured sets with optional weighting, which can be accomplished using conventional neural network techniques (step 192). The structured data sets are stored in a database containing structured real-time data sets 162 (step 192). The structured real-time data sets do not necessarily require an associated data and time, as any new retrieved real-time data replaces corresponding stored data so that the database only contains current real-time data. In some situations, outdated real-time data can be converted into historical data for the structured historical data sets 160. The structuring of the historical and real-time raw data in the data sets can occur through programming techniques involving conventional neural network technology; it can also use manual entry of information to create or structure the raw data into sets.

[0055] The data can be continuously updated based, for example, upon a particular time parameter. System server 158 determines whether it is time to retrieve new data (step 194). If so, it returns to step 172 to repeat method 170.

[0056]FIGS. 7 and 8 are a flow chart of a method 200 for predicting actual departure and arrival times for airline flights. Method 200 can be implemented in software modules within a server such as system server 158. In method 200, system server 158 receives a query identifying a scheduled airline flight (step 202). The query may be submitted, for example, from one of the user devices described above over a wireline or wireless network. The query can be entered using a key board or keypad of the device to enter the information. It can also be entered through voice-to-concept conversion based upon prompts by the system server using concept-to-audio conversion. For example, the system server can include a protocol for constructing a sentence having the concepts necessary to obtain the flight information and use the concept techniques described in the related applications identified above.

[0057] It can query the user to enter a departure city, arrival city, time, and airline company. The system server can assemble option lists for each of those concepts for selection by the user. Voice-to-concept and concept-to-audio conversion techniques are described in the related applications identified above.

[0058] System server 158 receives or obtains parameters for the flight for use in making the departure and arrival times prediction. The flight information constitutes one of more of these parameters identifying or related to the scheduled airline flight. In this example, system server 158 obtains the following flight information for the flight identified by the query: an indication of an airline company; an aircraft type; an airport of departure; an airport of arrival; and a current time (step 204). This information can be obtained by querying the user through the user device or from other sources such as a computer reservation system (CRS) that stores such information associated with flight codes.

[0059] System server 158 then accesses the historical database to retrieve historical structured data sets 160 related to the flight (step 206), and accesses the real-time database to retrieve real-time structured data sets 162 related to the flight (step 208). Historical data includes any type of information concerning past events related to the flight information, and real-time data includes any information concerning current events related to or possibly affecting the flight information. Current events can include events occurring at the time of the query or request, at the times for the scheduled flight, or at a time sufficient in time proximity to the scheduled flight times in order to potentially affect the actual departure and arrival times.

[0060] Examples of historical data sources include the following: the Federal Aviation Administration (FAA) flow control database identifying the location of all airplanes in U.S. airspace; a CRS or global distribution system (GDS), both of which provide updates on times for airline flights; and a statistical database providing performance statistics by airport and airline as maintained by the U.S. Department of Transportation.

[0061] Examples of real-time data sources include the following: a news-related database such as use of an Internet search engine or a dedicated news database such as the Nexis database; a weather database providing weather information for airports and cities; a date database providing current dates and identifying holidays and days of the week for the current date; the FAA airport delays database that tracks delays for airports resulting from, for example, weather, air traffic, and airport shut-downs; and an airline dispatcher database providing through a CRS or other network a dispatcher's opinion concerning airline and airport delays.

[0062] All of these exemplary historical and real-time data sources or databases are accessible via known communications networks. For each of the historical and real-time data sources, the system server can contact those sources over a network such as the networks described above and download the data using conventional Internet protocol or other communication protocols such as those identified above. Other types of data sources or databases, private or public, may also be used to obtain historical data related to flights.

[0063] The structured historical and real-time data can be indexed by a variety of parameters such as flight routes, airlines, aircraft types, and airports. Those parameters can be matched with information in the query or flight information through the indexing to retrieve the appropriate data sets. Structuring of raw data into data sets for processing by the neural network 168 can occur using conventional neural network technology and techniques as described, for example, in the following text, incorporated herein by reference: Timothy Masters, “Practical Neural Network Recipes in C++,” pp. 253-341 (Morgan Kaufmann 1993).

[0064] System server 158 can also determine whether to obtain additional information for the prediction based upon particular criteria (step 212). If additional information is desired, system server 158 constructs search parameters based upon the query (step 214) and executes the search within news or information sources (step 216). This search can include, for example, a key word search using information related to the scheduled airline flight. For example, the key words can include an identification of the airline company, the departure airport, and the arrival airport in order to retrieve any current news that could provide an indication of delays for the flight. A key word search on the airline company, for example, may reveal that the company is currently experiencing work slow downs due to union negotiations, which may affect departure times. A key word search on the departure and arrival airports may reveal, for example, that the airports have experienced delays to due adverse weather in other cities that has slowed down air traffic.

[0065] The news searches can be conducted in any type of news or information database such as, for example, an Internet or World Wide Web search using a conventional search engine, or a search within a dedicated news databases such as the Nexis database. The system can query the user to perform a search using user-entered parameters, or it can perform system-generated searches. For example, the system can be programmed to always perform a current news search for selected airports that have historically experienced significant delays. The system receives results of the searching (step 218) and formats the results into a structured real-time data set using conventional neural network technology (step 220).

[0066] System server 158 sends the retrieved structured data sets through fuzzy pre-processors 164 and 166 for additional or optional weighting to be applied to the data (step 221). The use of pre-processors to perform weighting of structured data is known in the art with respect to neural networks, and the weighting can be based upon conventional neural network techniques such as those described in the text identified above, or based at least in part upon empirical evidence.

[0067] Neural network 168 receives the retrieved pre-processed historical and real-time data sets from pre-processors 164 and 166, and it receives the flight information from system server 158. Based upon those inputs, neural network 168 predicts the actual departure and arrival times for the flight identified in the flight information along with an optional confidence level (step 222). Neural network 168 can be implemented with a conventional neural network for processing data; neural networks and technology are known in the art and described in the text identified above. Examples of neural network products include the following: the BrainMaker Neural Network Software Product by California Scientific Software, Nevada City, Calif.; and the NeuroSolutions product and related products by NeuroDimension, Inc., Gainesville, Fla.

[0068] Neural networks process individual data elements according to known techniques and can be tailored and adapted to different situations depending upon the type of input data and weighting used. Embodiments consistent with the present invention provide a new use for neural networks to process the input data described above and provide predicted actual airline departure and arrival times. As an alternative to neural networks, the embodiments can use any technology that processes structured input data to generate probabilistic determinations based upon the data. The processing can occur, for example, using formulas to process the data according to statistical information.

[0069] System server 158 receives the predicted times and corresponding confidence levels from neural network 168 and provides the information back to the requester at, for example, the user device (step 224). The use of a confidence level is known in the art with respect to neural network technology and provides a probability associated with the processed output data. Use of a neural network to generate multiple outputs with varying confidence levels based on input data is known in the art with respect to conventional neural network technology such as is described in the text identified above.

[0070] The system server can thus provide multiple predicted departure and arrival times with varying confidence levels.

[0071] The information can be displayed in text, for example, on the display for the user device as illustrated in Tables 2 and 3. Table 2 illustrates display of data for single predicted departure and arrival times, and Table 3 illustrates display of multiple predicted departure and arrival times with corresponding confidence levels. The actual percentages and flight information are provided for illustrative purposes only; different information and types of formatting can be used to display the data.

[0072] The information could in addition or alternatively be provided in audio form at the user device using text-to-audio techniques by selecting prerecorded or computer-generated audio information corresponding with the confidence levels and times. The confidence levels, and individual hours and minutes of the times, can be represented by concepts and converted to audio form through concept-to-audio techniques described in the related application identified above. This conversion may be particularly useful for devices, such as certain desktop phones, that have voice capability but no display panel for presenting a text message. TABLE 2 United Airlines flight 100, departing SEA, arriving SFO, on date X scheduled times: depart 8:40 am arrive 10:50 am predicted times: depart 8:55 am arrive 11:08 am

[0073] TABLE 3 United Airlines flight 100, departing SEA, arriving SFO, on date X scheduled times: depart 8:40 am arrive 10:50 am predicted times: confidence level departure time arrival time 20% depart 8:40 am arrive 10:50 am 40% depart 8:45 am arrive 10:55 am 60% depart 8:48 am arrive 11:58 am 80% depart 8:55 am arrive 11:08 am

[0074] System server 158 can also store the predicted departure and arrival times for the flight, along with the confidence level, in the historical database (step 226). The data can be structured and optionally weighted, and associated with a date and time, before storing it. The structuring and weighting can occur using conventional neural network technology such as that described in the text identified above. By storing the predicted times, system server 158 can track its accuracy in predicting times and further refine the system to enhance the prediction. This refinement can occur, for example, by altering weighting of the data or by changing the amount of historical data retained.

[0075] The predicted departure and arrival times can be used for any purpose in addition to informational purposes for the requestor. For example, based upon personal preferences of the requestor as maintained in personal data 38, the system server can recommend alternative flights if the predicted departure and arrival times differ from the scheduled times by an amount as determined by the personal preferences. The predicted times can also be used, for example, by airline companies to further refine scheduling of their airline flights. They can be used by travel agencies or other travel-related service providers to update travelers on flight times; for example, they can automatically update travelers concerning particular predicted changes in times for return flights. The predicted times can also be used to maintain a database concerning airport and airline performance in addition to those databases identified above, or for any other data mining purpose.

[0076] While the present invention has been described in connection with an exemplary embodiment, it will be understood that many modifications will be readily apparent to those skilled in the art, and this application is intended to cover any adaptations or variations thereof. For example, various types of user devices, hardware components for the devices and servers, and types of network transmissions may be used without departing from the scope of the invention. This invention should be limited only by the claims and equivalents thereof. 

What is claimed is:
 1. A method for predicting arrival and departure times of scheduled airline flights, comprising: receiving from a requestor a query relating to a particular scheduled airline flight; accessing historical data related to the flight; accessing real-time data related to the flight; using the historical data and the real-time data to predict actual departure and arrival times related to the flight; and providing an indication of the predicted actual departure and arrival times.
 2. The method of claim 1 wherein the receiving step includes receiving the following information for the flight: an airline company, an aircraft type, an airport of departure, an airport of arrival, and a current time.
 3. The method of claim 1 wherein the accessing the historical data step includes retrieving data from at least one of the following: a flow control database, a computerized reservation system, a global distribution system, a statistical database relating to airport performance, or a statistical database relating to airline performance.
 4. The method of claim 1 wherein the accessing the real-time data step includes retrieving data from at least one of the following: a news-related database, a weather database, a date database, an airport delays database, or an airline dispatcher database.
 5. The method of claim 1, further including updating the historical data.
 6. The method of claim 5, further including maintaining the historical data based upon a time parameter.
 7. The method of claim 1, further including updating the real-time data.
 8. The method of claim 1 wherein: the using step includes generating a confidence level for the predicted departure and arrival times; and the providing step includes providing an indication of the confidence level.
 9. The method of claim 1 wherein the accessing the real-time data step includes: constructing search parameters based upon the query; executing the search parameters within one or more information sources; and receiving results of the search parameters.
 10. The method of claim 1, further including: receiving raw historical data; and converting the raw historical data into a structured set of data, according to particular criteria, in order to provide the accessed historical data.
 11. The method of claim 1, further including: receiving raw real-time data; and converting the raw real-time data into a structured set of data, according to particular criteria, in order to provide the accessed real-time data.
 12. The method of claim 1, further including storing the predicated departure and arrival times as part of the historical data.
 13. An apparatus for predicting arrival and departure times of scheduled airline flights, comprising: a receive module for receiving from a requestor a query relating to a particular scheduled airline flight; an historical module for accessing historical data related to the flight; a real-time module for accessing real-time data related to the flight; a use module for using the historical data and the real-time data to predict actual departure and arrival times related to the flight; and a provide module for providing an indication of the predicted actual departure and arrival times.
 14. The apparatus of claim 13 wherein the receive module includes a module for receiving the following information for the flight: an airline company, an aircraft type, an airport of departure, an airport of arrival, and a current time.
 15. The apparatus of claim 13 wherein the historical module includes a module for retrieving data from at least one of the following: a flow control database, a computerized reservation system, a global distribution system, a statistical database relating to airport performance, or a statistical database relating to airline performance.
 16. The apparatus of claim 13 wherein the real-time module includes a module for retrieving data from at least one of the following: a news-related database, a weather database, a date database, an airport delays database, or an airline dispatcher database.
 17. The apparatus of claim 13, further including a module for updating the historical data.
 18. The apparatus of claim 17, further including a module for maintaining the historical data based upon a time parameter.
 19. The apparatus of claim 13, further including a module for updating the real-time data.
 20. The apparatus of claim 13 wherein: the use module includes a module for generating a confidence level for the predicted departure and arrival times; and the providing step includes providing an indication of the confidence level.
 21. The apparatus of claim 13 wherein the real-time module includes: a module for constructing search parameters based upon the query; a module for executing the search parameters within one or more information sources; and a module for receiving results of the search parameters.
 22. The apparatus of claim 13, further including: a module for receiving raw historical data; and a module for converting the raw historical data into a structured set of data, according to particular criteria, in order to provide the accessed historical data.
 23. The apparatus of claim 13, further including: a module for receiving raw real-time data; and a module for converting the raw real-time data into a structured set of data, according to particular criteria, in order to provide the accessed real-time data.
 24. The apparatus of claim 13, further including a module for storing the predicated departure and arrival times as part of the historical data. 